﻿using System;
using System.Collections.Generic;
using System.Text;
using FlashPay.EF.Models;
using FlashPay.Entity;
using FlashPay.Entity.Parameter;
using FlashPay.Entity.Response.CardMerchant;
using FlashPay.Entity.Request.CardMerchant;

namespace FlashPay.Service.Interface
{
    /// <summary>
    /// 卡商业务接口
    /// </summary>
    public interface CardMerchantService
    {
        /// <summary>
        /// 根据编号获取卡商
        /// </summary>
        /// <param name="Cmid">编号</param>
        /// <returns>JResult<CardMerchant></returns>
        JResult<CardMerchant> GetCardMerchant(int Cmid);

        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="CardMerchant">新增对象</param>
        /// <returns>JResult</returns>
        JResult AddCardMerchant(CardMerchant model);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="CardMerchant">修改对象</param>
        /// <returns>JResult</returns>
        JResult UpdateCardMerchant(CardMerchant model);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="Cmid">编号</param>
        /// <returns>JResult</returns>
        JResult DeleteCardMerchant(int Cmid);

        /// <summary>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
        /// 获取所有卡商记录
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <returns>List<CardMerchant></returns>
        List<CardMerchant> GetList(CardMerchantQuery query);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <returns>PagedList<CardMerchant></returns>
        PagedList<CardMerchantResponse> CardMerchantPage(CardMerchantQuery model);

        /// <summary>
        /// 查询列表
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <returns>JResult<List<CardMerchant>></returns>
        JResult<List<CardMerchant>> CardMerchantList(CardMerchantQuery model);

        /// <summary>
        /// 通过条件获取卡商信息
        /// </summary>
        /// <param name="SearchValue">搜索值</param>
        /// <param name="SearchType">值类型</param>
        /// <returns>List<CardMerchant></returns>
        JResult<List<CardMerchantResponse>> SearchCardMerchant(CardMerchantQuery query);
    }
}
